package com.aura.lyngen.model.vo;

import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 登录用户视图对象(Value Object)
 * 用于封装登录成功后需要返回给前端的数据
 * 实现Serializable接口以便支持序列化操作
 */
@Data
public class LoginUserVO implements Serializable {

    /**
     * 用户 id
     * 唯一标识符
     */
    private Long id;

    /**
     * 账号
     * 用户的登录账号
     */
    private String userAccount;

    /**
     * 用户昵称
     * 显示给其他用户看的名称
     */
    private String userName;

    /**
     * 用户头像
     * 头像图片的URL地址
     */
    private String userAvatar;

    /**
     * 用户简介
     * 用户的个人简介信息
     */
    private String userProfile;

    /**
     * 用户角色：user/admin
     * 定义用户在系统中的角色和权限
     */
    private String userRole;

    /**
     * 创建时间
     * 记录用户信息的创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     * 记录用户信息的最后修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 序列化版本UID
     * 用于版本控制，确保序列化和反序列化的兼容性
     */
    private static final long serialVersionUID = 1L;
}
